#!/bin/sh
# Update copyright year lists.
# Copyright (C) 2012-2017 Free Software Foundation, Inc.
# This file is part of the GNU C Library.

# The GNU C Library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.

# The GNU C Library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.

# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
# <http://www.gnu.org/licenses/>.

# Run this script with the first argument being the location of
# gnulib's update-copyright script.  Any other arguments are ignored.
# FSF copyright notices in the glibc source directory containing this
# script will be updated; glibc must then be built to update generated
# files.  Copyright dates in --version copyright notices are not
# updated.

set -e

export LC_ALL=C
export UPDATE_COPYRIGHT_FORCE=1
export UPDATE_COPYRIGHT_USE_INTERVALS=2
export UPDATE_COPYRIGHT_MAX_LINE_LENGTH=79

update_script=$1

if ! [ -f "$update_script" ]; then
  echo "error: first argument must point to gnulib update-copyright script" >&2
  exit 1
fi

cd "$(dirname "$0")/.."

files=$(find . -type f | sed 's|^\./||' | grep -v '^\.git/')

for f in $files; do
  case $f in
    COPYING | COPYING.LIB | manual/fdl-1.3.texi | manual/lgpl-2.1.texi)
      # Licenses imported verbatim from FSF sources.
      ;;
    manual/texinfo.tex | scripts/config.guess | scripts/config.sub \
      | scripts/install-sh | scripts/mkinstalldirs | scripts/move-if-change)
      # Other files imported verbatim from other GNU repositories.
      ;;
    po/*.po)
      # Files imported verbatim from the Translation Project.
      ;;
    INSTALL | intl/plural.c | locale/C-translit.h \
      | locale/programs/charmap-kw.h | locale/programs/locfile-kw.h \
      | po/libc.pot | sysdeps/gnu/errlist.c)
      # Generated files.
      ;;
    configure | */configure | preconfigure | */preconfigure)
      # Possibly generated files.
      if ! [ -f "$f.ac" ]; then
	"$update_script" "$f"
      fi
      ;;
    grp/initgroups.c | misc/bits/stab.def | posix/regex.h \
      | sysdeps/wordsize-32/divdi3.c)
      # Pre-1991 gaps in copyright years, so cannot use a single range.
      UPDATE_COPYRIGHT_USE_INTERVALS=1 "$update_script" "$f"
      ;;
    *)
      "$update_script" "$f"
      ;;
  esac
done
